﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

using System;

#endregion

namespace Sebarf.Diagnostics.Interfaces {
	/// <summary>
	/// Is responsible for detecting conditions that should not happen. 
	/// For example, Check.Check(1000,IsFileValid(),”file has to be valid”), 
	/// an possible reaction for a broken condition could be for example,
	/// 1. A reaction for a false condition with priority 1000 could be terminating the application.  
	/// 2. A reaction of a false condition with a priority of 10 could be writing a log entry 
	/// </summary>
	public interface ICheckerService {
		#region Public Methods

		/// <summary>
		/// checks if the given argument is not null
		/// </summary>
		/// <param name="name"></param>
		/// <param name="argsName"></param>
		/// <exception cref="ArgumentNullException"/>
		void ArgumentNotNull(object name, string argsName);

		///<summary>
		/// checks if the given condition is false, if so a debug message will be generated
		/// </summary>
		/// <param name="condition"></param>
		/// <param name="message"></param>
		void Assert(int priority, bool condition, string message);

		#endregion
	}
}